home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 January: Mac OS SDK / Dev.CD Jan 96 SDK / Dev.CD Jan 96 SDK1.toast / Development Kits (Disc 1) / OpenTransport / Open Transport 1.0.5b4 / Open Transport SDK / Open Tpt Module Developer / Includes / tihdr.h < prev   
Encoding:
C/C++ Source or Header  |  1995-06-24  |  11.9 KB  |  562 lines  |  [TEXT/MPS ]

  1. /** Copyright (c) 1992, 1993  Mentat Inc.
  2.  ** tihdr.h 4.3, last change 16 Feb 1994
  3.  **/
  4.  
  5. #ifndef _TIHDR_
  6. #define _TIHDR_
  7.  
  8. /* User generated requests */
  9. #define T_BIND_REQ                101
  10. #define T_CONN_REQ                102        /* connection request */
  11. #define T_CONN_RES                103        /* respond to connection indication */
  12. #define T_DATA_REQ                104
  13. #define T_DISCON_REQ            105
  14. #define T_EXDATA_REQ            106
  15. #define T_INFO_REQ                107
  16. #define T_OPTMGMT_REQ            108
  17. #define T_ORDREL_REQ            109
  18. #define T_UNBIND_REQ            110
  19. #define T_UNITDATA_REQ            111
  20. #define T_ADDR_REQ                112        /* Get address request                */
  21. #define T_UREQUEST_REQ            113        /* UnitRequest (transaction) req    */
  22. #define T_REQUEST_REQ            114        /* Request (CO transaction) req        */
  23. #define T_UREPLY_REQ            115        /* UnitRequest (transaction) req    */
  24. #define T_REPLY_REQ                116        /* REPLY (CO transaction) req        */
  25. #define T_CANCELREQUEST_REQ        117        /* Cancel outgoing request            */
  26. #define T_CANCELREPLY_REQ        118        /* Cancel incoming request            */
  27. #define T_REGNAME_REQ            119        /* Request name registration        */
  28. #define T_DELNAME_REQ            120        /* Request delete name registration */
  29. #define T_LKUPNAME_REQ            121        /* Request name lookup              */
  30.  
  31. /* Transport generated indications and acknowledgements */
  32. #define T_BIND_ACK                122
  33. #define T_CONN_CON                123        /* connection confirmation             */
  34. #define T_CONN_IND                124        /* incoming connection indication     */
  35. #define T_DATA_IND                125
  36. #define T_DISCON_IND            126
  37. #define T_ERROR_ACK             127
  38. #define T_EXDATA_IND            128
  39. #define T_INFO_ACK                129
  40. #define T_OK_ACK                130
  41. #define T_OPTMGMT_ACK            131
  42. #define T_ORDREL_IND            132
  43. #define T_UNITDATA_IND            133
  44. #define T_UDERROR_IND            134
  45. #define T_ADDR_ACK                135        /* Get address ack                    */
  46. #define T_UREQUEST_IND            136        /* UnitRequest (transaction) ind    */
  47. #define T_REQUEST_IND            137        /* Request (CO transaction) ind     */
  48. #define T_UREPLY_IND            138        /* Incoming unit reply                */
  49. #define T_REPLY_IND                139        /* Incoming reply                    */
  50. #define T_UREPLY_ACK            140        /* outgoing Unit Reply is complete    */
  51. #define T_REPLY_ACK                141        /* outgoing Reply is complete        */
  52. #define T_RESOLVEADDR_REQ        142
  53. #define T_RESOLVEADDR_ACK        143
  54.  
  55. #define T_LKUPNAME_CON            146        /* Results of name lookup           */
  56. #define T_LKUPNAME_RES            147        /* Partial results of name lookup    */
  57. #define T_REGNAME_ACK            148        /* Request name registration        */
  58. #define T_SEQUENCED_ACK            149        /* Sequenced version of OK or ERROR ACK */
  59.  
  60. #define T_EVENT_IND                160        /* Miscellaneous event Indication        */
  61.  
  62. /* State values */
  63. #define TS_UNBND                1
  64. #define TS_WACK_BREQ            2
  65. #define TS_WACK_UREQ            3
  66. #define TS_IDLE                 4
  67. #define TS_WACK_OPTREQ            5
  68. #define TS_WACK_CREQ            6
  69. #define TS_WCON_CREQ            7
  70. #define TS_WRES_CIND            8
  71. #define TS_WACK_CRES            9
  72. #define TS_DATA_XFER            10
  73. #define TS_WIND_ORDREL            11
  74. #define TS_WREQ_ORDREL            12
  75. #define TS_WACK_DREQ6            13
  76. #define TS_WACK_DREQ7            14
  77. #define TS_WACK_DREQ9            15
  78. #define TS_WACK_DREQ10            16
  79. #define TS_WACK_DREQ11            17
  80. #define TS_WACK_ORDREL            18
  81. #define TS_NOSTATES             19
  82. #define TS_BAD_STATE            19
  83.  
  84. /* Transport events */
  85. #define TE_OPENED                1
  86. #define TE_BIND                 2
  87. #define TE_OPTMGMT                3
  88. #define TE_UNBIND                4
  89. #define TE_CLOSED                5
  90. #define TE_CONNECT1             6
  91. #define TE_CONNECT2             7
  92. #define TE_ACCEPT1                8
  93. #define TE_ACCEPT2                9
  94. #define TE_ACCEPT3                10
  95. #define TE_SND                    11
  96. #define TE_SNDDIS1                12
  97. #define TE_SNDDIS2                13
  98. #define TE_SNDREL                14
  99. #define TE_SNDUDATA             15
  100. #define TE_LISTEN                16
  101. #define TE_RCVCONNECT            17
  102. #define TE_RCV                    18
  103. #define TE_RCVDIS1                19
  104. #define TE_RCVDIS2                20
  105. #define TE_RCVDIS3                21
  106. #define TE_RCVREL                22
  107. #define TE_RCVUDATA             23
  108. #define TE_RCVUDERR             24
  109. #define TE_PASS_CONN            25
  110. #define TE_BAD_EVENT            26
  111.  
  112. struct T_addr_ack
  113. {
  114.     long    PRIM_type;        /* Always T_ADDR_ACK */
  115.     long    LOCADDR_length;
  116.     long    LOCADDR_offset;
  117.     long    REMADDR_length;
  118.     long    REMADDR_offset;
  119. };
  120.  
  121. struct T_addr_req
  122. {
  123.     long    PRIM_type;        /* Always T_ADDR_REQ */
  124. };
  125.  
  126. struct T_bind_ack 
  127. {
  128.     long    PRIM_type;        /* always T_BIND_ACK */
  129.     long    ADDR_length;
  130.     long    ADDR_offset;
  131.     unsigned long    CONIND_number;
  132. };
  133.  
  134. struct T_bind_req 
  135. {
  136.     long    PRIM_type;        /* always T_BIND_REQ */
  137.     long    ADDR_length;
  138.     long    ADDR_offset;
  139.     unsigned long    CONIND_number;
  140. };
  141.  
  142. struct T_conn_con 
  143. {
  144.     long    PRIM_type;        /* always T_CONN_CON */
  145.     long    RES_length;     /* responding address length */
  146.     long    RES_offset;
  147.     long    OPT_length;
  148.     long    OPT_offset;
  149. };
  150.  
  151. struct T_conn_ind 
  152. {
  153.     long    PRIM_type;        /* always T_CONN_IND */
  154.     long    SRC_length;
  155.     long    SRC_offset;
  156.     long    OPT_length;
  157.     long    OPT_offset;
  158.     long    SEQ_number;
  159. };
  160.  
  161. struct T_conn_req 
  162. {
  163.     long    PRIM_type;        /* always T_CONN_REQ */
  164.     long    DEST_length;
  165.     long    DEST_offset;
  166.     long    OPT_length;
  167.     long    OPT_offset;
  168. };
  169.  
  170. struct T_conn_res 
  171. {
  172.     long    PRIM_type;        /* always T_CONN_RES */
  173.     struct queue* QUEUE_ptr;
  174.     long    OPT_length;
  175.     long    OPT_offset;
  176.     long    SEQ_number;
  177. };
  178.  
  179. struct T_data_ind 
  180. {
  181.     long    PRIM_type;        /* always T_DATA_IND */
  182.     long    MORE_flag;
  183. };
  184.  
  185. struct T_data_req 
  186. {
  187.     long    PRIM_type;        /* always T_DATA_REQ */
  188.     long    MORE_flag;
  189. };
  190.  
  191. struct T_discon_ind 
  192. {
  193.     long    PRIM_type;        /* always T_DISCON_IND */
  194.     long    DISCON_reason;
  195.     long    SEQ_number;
  196. };
  197.  
  198. struct T_discon_req 
  199. {
  200.     long    PRIM_type;        /* always T_DISCON_REQ */
  201.     long    SEQ_number;
  202. };
  203.  
  204. struct T_exdata_ind 
  205. {
  206.     long    PRIM_type;        /* always T_EXDATA_IND */
  207.     long    MORE_flag;
  208. };
  209.  
  210. struct T_exdata_req 
  211. {
  212.     long    PRIM_type;        /* always T_EXDATA_REQ */
  213.     long    MORE_flag;
  214. };
  215.  
  216. struct T_error_ack 
  217. {
  218.     long    PRIM_type;        /* always T_ERROR_ACK */
  219.     long    ERROR_prim;     /* primitive in error */
  220.     long    TLI_error;
  221.     long    UNIX_error;
  222. };
  223.  
  224. struct T_info_ack 
  225. {
  226.     long    PRIM_type;        /* always T_INFO_ACK */
  227.     long    TSDU_size;        /* max TSDU size */
  228.     long    ETSDU_size;     /* max ETSDU size */
  229.     long    CDATA_size;     /* connect data size */
  230.     long    DDATA_size;     /* disconnect data size */
  231.     long    ADDR_size;        /* TSAP size */
  232.     long    OPT_size;        /* options size */
  233.     long    TIDU_size;        /* TIDU size */
  234.     long    SERV_type;        /* service type */
  235.     long    CURRENT_state;    /* current state */
  236.     long    PROVIDER_flag;    /* provider flags (see xti.h for defines) */
  237. };
  238.  
  239. /* Provider flags */
  240. #define SENDZERO        0x001   /* supports 0-length TSDU's */
  241. #define XPG4_1          0x002   /* provider supports recent stuff */
  242.  
  243. struct T_info_req 
  244. {
  245.     long    PRIM_type;        /* always T_INFO_REQ */
  246. };
  247.  
  248. struct T_ok_ack 
  249. {
  250.     long    PRIM_type;        /* always T_OK_ACK */
  251.     long    CORRECT_prim;
  252. };
  253.  
  254. struct T_optmgmt_ack 
  255. {
  256.     long    PRIM_type;        /* always T_OPTMGMT_ACK */
  257.     long    OPT_length;
  258.     long    OPT_offset;
  259.     long    MGMT_flags;
  260. };
  261.  
  262. struct T_optmgmt_req 
  263. {
  264.     long    PRIM_type;        /* always T_OPTMGMT_REQ */
  265.     long    OPT_length;
  266.     long    OPT_offset;
  267.     long    MGMT_flags;
  268. };
  269.  
  270. struct T_ordrel_ind 
  271. {
  272.     long    PRIM_type;        /* always T_ORDREL_IND */
  273. };
  274.  
  275. struct T_ordrel_req 
  276. {
  277.     long    PRIM_type;        /* always T_ORDREL_REQ */
  278. };
  279.  
  280. struct T_unbind_req 
  281. {
  282.     long    PRIM_type;        /* always T_UNBIND_REQ */
  283. };
  284.  
  285. struct T_uderror_ind 
  286. {
  287.     long    PRIM_type;        /* always T_UDERROR_IND */
  288.     long    DEST_length;
  289.     long    DEST_offset;
  290.     long    OPT_length;
  291.     long    OPT_offset;
  292.     long    ERROR_type;
  293. };
  294.  
  295. struct T_unitdata_ind 
  296. {
  297.     long    PRIM_type;        /* always T_UNITDATA_IND */
  298.     long    SRC_length;
  299.     long    SRC_offset;
  300.     long    OPT_length;
  301.     long    OPT_offset;
  302. };
  303.  
  304. struct T_unitdata_req 
  305. {
  306.     long    PRIM_type;        /* always T_UNITDATA_REQ */
  307.     long    DEST_length;
  308.     long    DEST_offset;
  309.     long    OPT_length;
  310.     long    OPT_offset;
  311. };
  312.  
  313. struct T_resolveaddr_ack 
  314. {
  315.     long    PRIM_type;        /* always T_RESOLVEADDR_ACK */
  316.     long    SEQ_number;
  317.     long    ADDR_length;
  318.     long    ADDR_offset;
  319.     long    ORIG_client;
  320.     long    ORIG_data;
  321.     long    TLI_error;
  322.     long    UNIX_error;
  323. };
  324.  
  325. struct T_resolveaddr_req 
  326. {
  327.     long    PRIM_type;        /* always T_RESOLVEADDR_REQ */
  328.     long    SEQ_number;
  329.     long    ADDR_length;
  330.     long    ADDR_offset;
  331.     long    ORIG_client;
  332.     long    ORIG_data;
  333.     long    MAX_milliseconds;
  334. };
  335.  
  336. struct T_unitreply_ind
  337. {
  338.     long    PRIM_type;        /* Always T_UREPLY_IND */
  339.     long    SEQ_number;
  340.     long    OPT_length;
  341.     long    OPT_offset;
  342.     long    REP_flags;
  343.     long    TLI_error;
  344.     long    UNIX_error;
  345. };
  346.  
  347. struct T_unitrequest_ind
  348. {
  349.     long    PRIM_type;        /* Always T_UREQUEST_IND */
  350.     long    SEQ_number;
  351.     long    SRC_length;
  352.     long    SRC_offset;
  353.     long    OPT_length;
  354.     long    OPT_offset;
  355.     long    REQ_flags;
  356. };
  357.  
  358. struct T_unitrequest_req
  359. {
  360.     long    PRIM_type;        /* Always T_UREQUEST_REQ */
  361.     long    SEQ_number;
  362.     long    DEST_length;
  363.     long    DEST_offset;
  364.     long    OPT_length;
  365.     long    OPT_offset;
  366.     long    REQ_flags;
  367. };
  368.  
  369. struct T_unitreply_req
  370. {
  371.     long    PRIM_type;        /* Always T_UREPLY_REQ */
  372.     long    SEQ_number;
  373.     long    OPT_length;
  374.     long    OPT_offset;
  375.     long    REP_flags;
  376. };
  377.  
  378. struct T_unitreply_ack
  379. {
  380.     long    PRIM_type;        /* Always T_UREPLY_ACK */
  381.     long    SEQ_number;
  382.     long    TLI_error;
  383.     long    UNIX_error;
  384. };
  385.  
  386. struct T_cancelrequest_req
  387. {
  388.     long    PRIM_type;        /* Always T_CANCELREQUEST_REQ */
  389.     long    SEQ_number;
  390. };
  391.  
  392. struct T_cancelreply_req
  393. {
  394.     long    PRIM_type;        /* Always T_CANCELREPLY_REQ */
  395.     long    SEQ_number;
  396. };
  397.  
  398. struct T_reply_ind
  399. {
  400.     long    PRIM_type;        /* Always T_REPLY_IND */
  401.     long    SEQ_number;
  402.     long    OPT_length;
  403.     long    OPT_offset;
  404.     long    REP_flags;
  405.     long    TLI_error;
  406.     long    UNIX_error;
  407. };
  408.  
  409. struct T_request_ind
  410. {
  411.     long    PRIM_type;        /* Always T_REQUEST_IND */
  412.     long    SEQ_number;
  413.     long    OPT_length;
  414.     long    OPT_offset;
  415.     long    REQ_flags;
  416. };
  417.  
  418. struct T_request_req
  419. {
  420.     long    PRIM_type;        /* Always T_REQUEST_REQ */
  421.     long    SEQ_number;
  422.     long    OPT_length;
  423.     long    OPT_offset;
  424.     long    REQ_flags;
  425. };
  426.  
  427. struct T_reply_req
  428. {
  429.     long    PRIM_type;        /* Always T_REPLY_REQ */
  430.     long    SEQ_number;
  431.     long    OPT_length;
  432.     long    OPT_offset;
  433.     long    REP_flags;
  434. };
  435.  
  436. struct T_reply_ack
  437. {
  438.     long    PRIM_type;        /* Always T_REPLY_ACK */
  439.     long    SEQ_number;
  440.     long    TLI_error;
  441.     long    UNIX_error;
  442. };
  443.  
  444. struct T_regname_req
  445. {
  446.     long    PRIM_type;        /* Always T_REGNAME_REQ */
  447.     long    SEQ_number;        /* Reply is sequence ack */
  448.     long    NAME_length;
  449.     long    NAME_offset;
  450.     long    ADDR_length;
  451.     long    ADDR_offset;
  452.     long    REQ_flags;
  453. };
  454.  
  455. struct T_regname_ack 
  456. {
  457.     long    PRIM_type;        /* always T_REGNAME_ACK        */
  458.     long    SEQ_number;
  459.     long    REG_id;
  460.     long    ADDR_length;
  461.     long    ADDR_offset;
  462. };
  463.  
  464. struct T_delname_req
  465. {
  466.     long    PRIM_type;        /* Always T_DELNAME_REQ */
  467.     long    SEQ_number;        /* Reply is sequence ack */
  468.     long    NAME_length;
  469.     long    NAME_offset;
  470. };
  471.  
  472. struct T_lkupname_req
  473. {
  474.     long    PRIM_type;        /* Always T_LKUPNAME_REQ */
  475.     long    SEQ_number;        /* Reply is sequence ack */
  476.     long    NAME_length;    /* ... or T_LKUPNAME_CON */
  477.     long    NAME_offset;
  478.     long    ADDR_length;
  479.     long    ADDR_offset;
  480.     long    MAX_number;
  481.     long    MAX_milliseconds;
  482.     long    REQ_flags;
  483. };
  484.  
  485. struct T_lkupname_con 
  486. {
  487.     long    PRIM_type;        /* Either T_LKUPNAME_CON */
  488.     long    SEQ_number;        /* Or T_LKUPNAME_RES */
  489.     long    NAME_length;
  490.     long    NAME_offset;
  491.     long    RSP_count;
  492.     long    RSP_cumcount;
  493. };
  494.  
  495. struct T_sequence_ack 
  496. {
  497.     long    PRIM_type;        /* always T_SEQUENCED_ACK        */
  498.     long    ORIG_prim;         /* original primitive            */
  499.     long    SEQ_number;
  500.     long    TLI_error;
  501.     long    UNIX_error;
  502. };
  503.  
  504. struct T_event_ind 
  505. {
  506.     long    PRIM_type;        /* always T_EVENT_IND            */
  507.     long    EVENT_code;
  508.     long    EVENT_cookie;
  509. };
  510.  
  511. union T_primitives 
  512. {
  513.     long                        type;
  514.     struct T_addr_ack            taddrack;
  515.     struct T_bind_ack            tbindack;
  516.     struct T_bind_req            tbindreq;
  517.     struct T_conn_con            tconncon;
  518.     struct T_conn_ind            tconnind;
  519.     struct T_conn_req            tconnreq;
  520.     struct T_conn_res            tconnres;
  521.     struct T_data_ind            tdataind;
  522.     struct T_data_req            tdatareq;
  523.     struct T_discon_ind         tdisconind;
  524.     struct T_discon_req         tdisconreq;
  525.     struct T_exdata_ind         texdataind;
  526.     struct T_exdata_req         texdatareq;
  527.     struct T_error_ack            terrorack;
  528.     struct T_info_ack            tinfoack;
  529.     struct T_info_req            tinforeq;
  530.     struct T_ok_ack             tokack;
  531.     struct T_optmgmt_ack        toptmgmtack;
  532.     struct T_optmgmt_req        toptmgmtreq;
  533.     struct T_ordrel_ind         tordrelind;
  534.     struct T_ordrel_req         tordrelreq;
  535.     struct T_unbind_req         tunbindreq;
  536.     struct T_uderror_ind        tuderrorind;
  537.     struct T_unitdata_ind        tunitdataind;
  538.     struct T_unitdata_req        tunitdatareq;
  539.     struct T_unitreply_ind        tunitreplyind;
  540.     struct T_unitrequest_ind    tunitrequestind;
  541.     struct T_unitrequest_req    tunitrequestreq;
  542.     struct T_unitreply_req        tunitreplyreq;
  543.     struct T_unitreply_ack        tunitreplyack;
  544.     struct T_reply_ind            treplyind;
  545.     struct T_request_ind        trequestind;
  546.     struct T_request_req        trequestreq;
  547.     struct T_reply_req            treplyreq;
  548.     struct T_reply_ack            treplyack;
  549.     struct T_cancelrequest_req    tcancelreqreq;
  550.     struct T_resolveaddr_req    tresolvereq;
  551.     struct T_resolveaddr_ack    tresolveack;
  552.     struct T_regname_req        tregnamereq;
  553.     struct T_regname_ack        tregnameack;
  554.     struct T_delname_req        tdelnamereq;
  555.     struct T_lkupname_req        tlkupnamereq;
  556.     struct T_lkupname_con        tlkupnamecon;
  557.     struct T_sequence_ack        tsequenceack;
  558.     struct T_event_ind            teventind;
  559. };
  560.  
  561. #endif
  562.